From c9a3332ede3b0a736f9e100a04959e0041c2351e Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 25 Nov 2011 13:07:43 +0100 Subject: [PATCH] Add generation of private g-types for private headers This starts with just the gtkcsstypesprivate.h header --- gtk/Makefile.am | 30 ++++++++++++++++++++-- gtk/gtkprivate.h | 2 ++ gtk/gtkprivatetypebuiltins.c.template | 36 +++++++++++++++++++++++++++ gtk/gtkprivatetypebuiltins.h.template | 28 +++++++++++++++++++++ 4 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 gtk/gtkprivatetypebuiltins.c.template create mode 100644 gtk/gtkprivatetypebuiltins.h.template diff --git a/gtk/Makefile.am b/gtk/Makefile.am index 85c3b71f88..083252fd8c 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -382,6 +382,10 @@ gtk_appchooser_impl_c_sources = \ gtkappchooseronlinepk.c endif +gtk_private_type_h_sources = \ + gtkcsstypesprivate.h + + # GTK+ header files that don't get installed gtk_private_h_sources = \ gtkaccelgroupprivate.h \ @@ -400,7 +404,6 @@ gtk_private_h_sources = \ gtkcssproviderprivate.h \ gtkcsssectionprivate.h \ gtkcssselectorprivate.h \ - gtkcsstypesprivate.h \ gtkcustompaperunixdialog.h \ gtkdndcursors.h \ gtkentryprivate.h \ @@ -468,6 +471,7 @@ gtk_private_h_sources = \ gtkwin32themeprivate.h \ gtkwindowprivate.h \ gtktreemenu.h \ + $(gtk_private_type_h_sources) \ $(gtk_clipboard_dnd_h_sources) \ $(gtk_appchooser_impl_h_sources) @@ -636,6 +640,7 @@ gtk_base_c_sources = \ gtkprintsettings.c \ gtkprintutils.c \ gtkprivate.c \ + gtkprivatetypebuiltins.c \ gtkprogressbar.c \ gtkradioaction.c \ gtkradiobutton.c \ @@ -832,18 +837,21 @@ gtk_built_public_sources = \ gtk_built_private_headers = \ gtkmarshalers.h \ gtkbuiltincache.h \ + gtkprivatetypebuiltins.h \ gtkwin32css.h gtk_built_sources = \ gtktypebuiltins.c \ gtktypefuncs.c \ gtkmarshalers.c \ + gtkprivatetypebuiltins.c \ ${gtk_built_private_headers} \ ${gtk_built_public_sources} stamp_files = \ stamp-gtkmarshalers.h \ stamp-gtktypebuiltins.h \ + stamp-gtkprivatetypebuiltins.h \ stamp-gtkwin32css.h \ stamp-icons @@ -924,7 +932,23 @@ gtktypebuiltins.c: @REBUILD@ $(gtk_public_h_sources) $(deprecated_h_sources) gtk && cp xgen-gtbc gtktypebuiltins.c \ && rm -f xgen-gtbc -gtktypefuncs.c: @REBUILD@ stamp-gtktypebuiltins.h $(top_srcdir)/gtk/*.h $(top_srcdir)/gtk/deprecated/*.h $(top_srcdir)/gdk/*.h Makefile + +gtkprivatetypebuiltins.h: stamp-gtkprivatetypebuiltins.h + @true +stamp-gtkprivatetypebuiltins.h: @REBUILD@ $(gtk_private_type_h_sources) gtkprivatetypebuiltins.h.template + $(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template gtkprivatetypebuiltins.h.template \ + $(gtk_private_type_h_sources) ) > xgen-gptbh \ + && (cmp -s xgen-gptbh gtkprivatetypebuiltins.h || cp xgen-gptbh gtkprivatetypebuiltins.h ) \ + && rm -f xgen-gptbh \ + && echo timestamp > $(@F) +gtkprivatetypebuiltins.c: @REBUILD@ $(gtk_private_type_h_sources) gtkprivatetypebuiltins.c.template + $(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template gtkprivatetypebuiltins.c.template \ + $(gtk_private_type_h_sources) ) > xgen-gptbc \ + && cp xgen-gptbc gtkprivatetypebuiltins.c \ + && rm -f xgen-gptbc + + +gtktypefuncs.c: @REBUILD@ stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_srcdir)/gtk/*.h $(top_srcdir)/gtk/deprecated/*.h $(top_srcdir)/gdk/*.h Makefile $(AM_V_GEN) echo '#include ' > xgen-gtfsrc.c && \ ${CPP} $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-gtfsrc.c | \ $(GREP) -o '\bg[td]k_[a-zA-Z0-9_]*_get_type\b' | \ @@ -1458,6 +1482,8 @@ EXTRA_DIST += \ abicheck.sh \ gtktypebuiltins.c.template \ gtktypebuiltins.h.template \ + gtkprivatetypebuiltins.c.template \ + gtkprivatetypebuiltins.h.template \ org.gtk.Settings.FileChooser.gschema.xml gsettings_SCHEMAS = \ diff --git a/gtk/gtkprivate.h b/gtk/gtkprivate.h index ba18f043ce..1b4d0ae65c 100644 --- a/gtk/gtkprivate.h +++ b/gtk/gtkprivate.h @@ -30,6 +30,8 @@ #include #include +#include "gtkcsstypesprivate.h" + G_BEGIN_DECLS #define GTK_PARAM_READABLE G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB diff --git a/gtk/gtkprivatetypebuiltins.c.template b/gtk/gtkprivatetypebuiltins.c.template new file mode 100644 index 0000000000..8f1034e195 --- /dev/null +++ b/gtk/gtkprivatetypebuiltins.c.template @@ -0,0 +1,36 @@ +/*** BEGIN file-header ***/ +#include "gtk.h" +#include "gtkprivate.h" + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType +_@enum_name@_get_type (void) +{ + static GType etype = 0; + if (G_UNLIKELY(etype == 0)) { + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; + etype = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); + } + return etype; +} + +/*** END value-tail ***/ + +/*** BEGIN file-tail ***/ + +/*** END file-tail ***/ diff --git a/gtk/gtkprivatetypebuiltins.h.template b/gtk/gtkprivatetypebuiltins.h.template new file mode 100644 index 0000000000..c3618edc5e --- /dev/null +++ b/gtk/gtkprivatetypebuiltins.h.template @@ -0,0 +1,28 @@ +/*** BEGIN file-header ***/ +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GTK_PRIVATE_TYPE_BUILTINS_H__ +#define __GTK_PRIVATE_TYPE_BUILTINS_H__ + +#include + +G_BEGIN_DECLS +/*** END file-header ***/ + +/*** BEGIN file-production ***/ + +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType _@enum_name@_get_type (void) G_GNUC_CONST; +#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (_@enum_name@_get_type ()) +/*** END value-header ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* __GTK_PRIVATE_TYPE_BUILTINS_H__ */ +/*** END file-tail ***/ -- 2.30.2